The objective of this work is to propose a single metric, that would represent how fast a cryptocurrency network is growing.
The ideal aggregate growth metric would be comparable across time (allow a user to measure growth today versus some time in the past) and across crypto assets (allow a user to compare the growth of Bitcoin versus Ethereum).
A more detailed description of the problem can be found in this document.
Original RMarkdown notebook can be found here
Growth by itself is just a value of change over time. So to calculate the growth of something we should first define that something.
\(growth(X) = X(t) - X(t-1) ~= X'(t)\)
We want to represent the growth of size or activity of the network. Let’s define size of the network at a particular time as number of individuals using the cryptocurrency times size of single user interaction with network
Size = #users x size of single usage
The size of the net should be large if a lot of people spend significant amount of cryptocurrency regularly. And should be smaller if either fewer people use the asset or the same amount of people use the net only minorly.
However, we can notice that the number of people using cryptocurrency even for really small money transfers is a much more significant factor of the net size in general. We will use this observation further.
To estimate the size of the net how we defined it based on the data we have we need to make some compromises.
Network data is very unstable during the week. To lower the effect of weekly oscillations we will measure the size of the network for the whole week, rather than for a single day.
Data about single individuals using the network is not accessible by design. For the purpose of this experiment, we would approximate it with a number of unique active addresses in the net during the period. Unfortunately, we only have data per day, so let’s say that the number of individuals using the network during some period is proportional to the third quartile of unique addresses count for each day during that period.
To estimate the size of single user interaction with network let’s multiply the mean value of a single transfer in USD by the expected number of transfers per user (total number of transfers / estimated number of users)
Since the number of users has bigger significance to the resulting size of the network we will take a log of a single-user interaction size befor multipluing.
With all that said, final size metrtic would look like this:
\(size(t) = Q_3(AdrActCnt) * log_{10}[\frac{\overline{TxTfr} * \overline{TxTfrValMeanUSD}}{Q_3(AdrActCnt)}]\)
Here are some graphs showing the growth of the network over time.
Due to the really quick growth of Bitcoin at the very beginning of its existence growth is shown on a logarithmic scale on the next graph.
The third quartile of a number of active addresses is a bad estimator for the number of individuals using the network. To fix this we can use data about the number of unique addresses throughout the whole period we are calculating the metric for. It should increase stability.
There should be a better way to fix weekly inconsistencies than just averaging over the week. Also, current implementation averages over a month, and can contain a different number of weekend days in a single month, and that should have a negative impact on data quality.